The mobile service carriers in the past have been exclusively supplying their contents. The policy has not allowed end-users to use various contents that are created their own private applications. In addition, limited capability of mobile terminals has been an obstacle to consume various contents on the web sites. But recently, mobile devices with high performance and display resolution by the virtue of technological progress are widely distributed over the world rapidly such as Apple's iPhone, Google's Android etc. and their application market also has been invigorated due to the growth of App Store.
While this continuous increase of the contents has some advantages in that user can choose what he wants to consume, it requires too much time and effort to find the right contents using a search engine or categories of contents. Therefore, a technique of providing user-centered customized content, which allows users to receive only desired contents through filtering process according to their situations, is required. A representative technique that may be able to meet those requirements is a context-aware technology.
In general, the context-aware technique refers to recommend a user to offer services appropriate to a current status of the user in consideration of a location, profile, preference of the user, service history served to the user, sensor data for recognizing a current condition of the user, and the like. This technique includes a sensor data aggregation process to collect sensor data, a context-handling process of abstracting the collected sensor data to generate context information, a context reasoning process of combining several context information to recognize user's situation, and finally a recommended service provisioning process to transfer an appropriate service based on the context reasoning result.
In General, context-aware service technology is required to acquire knowledge of a system development and integration covering several processes extending from context modeling to service provision as mentioned above, as well as expert or technical knowledge with respect to an application domain.
Thus, existing context-aware services have been developed to limited spaces or domains such as an exhibition hall, a conference hall, a laboratory, or the like. The used sensor devices and types of them are determined in advance. Thus, it is quite difficult to extend the services to different domains or reuse the services.
In order to easily apply the context-aware services to various domains as well as develop, maintain, and manage those services, there have been proposed various techniques employing methods such as middleware in the form of a dedicated service platform, ontology, rule-based reasoning engine, message interception, a model-based development toolkit, a source code level-development support system, and the like. A major target of these techniques is to separate context handling and business logic, which can determine user's situation and take a proper action or response, in designing and implementing a context-aware service. Also, it is important to maintain the accuracy and quality of a recommended service depending on a user situation in order to apply the context-aware service in commercial services. In addition, an aspect of system architecture for supporting multiple concurrent connections should also be considered. For example, in case of ontology, it has some advantages in high accuracy of reasoning compared with other techniques, but expert skills in the context modeling are required for constructing an initial knowledge database. Also, the response time of a service search is drastically lowered as the knowledge database increases, resulting in that the ontology cannot be the right solution for business usages. The source code-level development support system has merits in reuse and extension in various domains, but it is not easily to continuously maintain and manage a service at the level of a developer because source codes are required to be modified.